package io.terminus.spzx.manager.mapper;

import io.terminus.spzx.model.entity.product.Category;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * @Author lichunlong lcl253137@alibaba-inc.com
 * @Desc 分类管理Mybatis Mapper
 * @Date 2024-09-21
 */
@Mapper
public interface CategoryMapper {

    /**
     * 根据父id查询list集合
     *
     * @param id 分类ID
     * @return 分类列表
     */
    List<Category> selectCategoryByParentId(Long id);

    /**
     * 判断每个分类是否有下一层分类
     *
     * @param id 父分类ID
     * @return 下一层分类数量
     */
    int selectCountByParentId(Long id);

    /**
     * 查询所有分类
     *
     * @return 分类列表
     */
    List<Category> findAll();

    /**
     * 根据id查询分类
     *
     * @param id 分类id
     * @return 分类
     */
    Category findById(Long id);

    /**
     * 批量保存
     *
     * @param categoryList 类目列表
     */
    void batchInsert(List<Category> categoryList);
}
